package com.example.clxy.service;

import com.example.clxy.entity.Program;
import com.example.clxy.result.PageResult;
import com.example.clxy.result.WebRestResult;
import com.example.clxy.result.business.PageResult.ExperimentPageResult;
import com.example.clxy.result.business.PageResult.PlatformPageResult;
import com.example.clxy.result.business.PageResult.ProgramPageResult;
import com.example.clxy.result.business.PageResult.SycoursePageResult;

/**
 * @author weichong
 * date 2020-08-04
 * @Description:
 */
public interface ProgramService {

    WebRestResult addProgram( Program program);

    WebRestResult updateProgram( Program program);


    PageResult<ProgramPageResult> getProgramList(String programid, String programname, String year, String procode, String schoolname, String status, int page, int pagesize);


    WebRestResult addProgramSycourse(String programid,String sycourseid);

    WebRestResult addProgramSycourseExperiment(String programid,String sycourseid,String experimentid);

    WebRestResult addProgramPlatform(String programid,String platformid);

    WebRestResult addProgramPlatformExperiment(String programid,String platformid,String experimentid);


    WebRestResult deleteProgramSycourse(String programid,String sycourseid);

    WebRestResult deleteProgramSycourseExperiment(String programid,String sycourseid,String experimentid);

    WebRestResult deleteProgramPlatform(String programid,String platformid);

    WebRestResult deleteProgramPlatformExperiment(String programid,String platformid,String experimentid);


    PageResult<SycoursePageResult> getAllSycourseOfProgram(String programid, String sycoursename, int page, int pagesize);

    PageResult<PlatformPageResult> getAllPlatformOfProgram(String programid, String platformname, int page, int pagesize);

    PageResult<ExperimentPageResult> getAllExperimentOfProgramSycourse(String programid, String sycourseid, String experimentname, int page, int pagesize);

    PageResult<ExperimentPageResult> getAllExperimentOfProgramPlatform(String programid, String platformid, String experimentname, int page, int pagesize);


    PageResult<SycoursePageResult> getProgramSycourseExperiment(String programid, int page, int pagesize);

    PageResult<PlatformPageResult> getProgramPlatformExperiment(String programid, int page, int pagesize);

    WebRestResult copyProgram(String oldprogramid, String newprogramid);

}
